<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>

<body>
    <div id="box">
        <!-- 正常标签 -->
        <!-- <div style="background:yellow;">
            <button>返回</button>
            <span>导航栏</span>
            <button>首页</button>
        </div> -->

        <!-- 全局引入组件 -->
        <navbar>></navbar>
        <navbar>></navbar>
        <navbar>></navbar>


    </div>
    <!-- 此方法创建组件的弊端：
    1.dom片段无代码提示
    2.css 只能写成行内样式
    3.template 只能包含一个根节点
    4.组件间无法直接访问外部的组件的状态或方法，需要通过间接的方法来交流
    5.自定义组件data必须写成函数（在定义时互不影响）


-->
    <script type="text/javascript">
        //创建并封装全局组件
        Vue.component("navbar", {
            //采用模板字符串引入样式
            template: `
        <div style="background:yellow;">
            <button @click="handleBack()">返回</button>
            <span>导航栏---{{myname}}</span>
            <button @click="handleHome()">首页</button>
        </div> 
            `,//模板
            methods: {
                handleBack() {
                    console.log('返回')
                },
                handleHome() {
                    console.log('homeclick')
                },
            },
            computed: {

            },
            watch: {

            },
            data(){         // data 必须写成函数
                return {
                    myname:"child-name"
                }
            }
        })

        // 根组件
        new Vue({
            el: "#box",
            data: {
                myname: "张三"
            }
        })
    </script>
</body>

</html>